package git.soulbgm.utils;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.List;


/**
 * @author 贺瑞杰
 * @version V1.0
 * @date 2018-05-22 17:15:58
 * @description JSON工具类
 */
public class JsonUtil {

    /**
     * 将JSON字符串转换为对象
     *
     * @param json
     * @param tClass
     * @param <T>
     * @return
     */
    public static <T> T parse(String json, Class<T> tClass) {
        try {
            if (StringUtil.isNotEmpty(json)) {
                T t = JSONObject.parseObject(json, tClass);
                return t;
            }
        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
        return null;
    }

    /**
     * 将JSON字符串转换为JSONObject
     *
     * @param json
     * @return
     */
    public static JSONObject parse(String json) {
        try {
            if (StringUtil.isNotEmpty(json)) {
                return JSONObject.parseObject(json);
            }
        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
        return null;
    }

    /**
     * 将JSON字符串转换为集合对象
     *
     * @param json
     * @param tClass
     * @param <T>
     * @return
     */
    public static <T> List<T> parseArray(String json, Class<T> tClass) {
        try {
            if (StringUtil.isNotEmpty(json)) {
                List<T> list = JSONArray.parseArray(json, tClass);
                return list;
            }
        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
        return null;
    }

    /**
     * 将JSON字符串转换为JSONArray
     *
     * @param json
     * @return
     */
    public static JSONArray parseArray(String json) {
        try {
            if (StringUtil.isNotEmpty(json)) {
                return JSONArray.parseArray(json);
            }
        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
        return null;
    }

    /**
     * 将对象转换为JSON字符串
     *
     * @param t
     * @param <T>
     * @return
     */
    public static <T> String toJson(T t) {
        try {
            return JSONObject.toJSONString(t);
        } catch (Exception e) {
            System.err.println("转换JSON字符出错" + e.getMessage());
        }
        return null;
    }

    /**
     * 将集合对象转换为JSONArray字符串
     *
     * @param list
     * @param <T>
     * @return
     */
    public static <T> String toJsonArray(List<T> list) {
        try {
            return JSONArray.toJSONString(list);
        } catch (Exception e) {
            System.err.println("转换JSONArray字符出错" + e.getMessage());
        }
        return null;
    }

}
